package com.lib.framework.base

/**
 * Copyright (C), 2019-2020
 * FileName: OkHttpClientConfig
 * Author: Kevin
 * Date: 2020-01-06 15:19
 * Description: 配置 map 基类
 * History:
 * <author> <time> <version> <desc>
 * 作者姓名 修改时间 版本号 描述
 */
open class BaseConfigMap<T> {

    /**
     * 配置 map，key 是配置的name，value 是具体的配置类
     */
    protected val mConfigMap = mutableMapOf<String, T>()


    /**
     * 增加配置
     *
     * @param configName 配置名称（唯一），可用于移除配置
     * @param config 配置类
     */
    fun addConfig(configName: String, config: T) {
        if (configName.isEmpty()) return

        mConfigMap[configName] = config
    }

    /**
     * 移除配置
     *
     * @param configName 配置名称（唯一）
     */
    fun removeConfig(configName: String) {
        mConfigMap.remove(configName)
    }

    /**
     * 清空配置
     */
    fun clear() {
        mConfigMap.clear()
    }
}